//////////////////////////////////////////////////////////////////////////
#pragma once


//////////////////////////////////////////////////////////////////////////
#include <RocketLua/RocketLua.hpp>


namespace Rocket
{
	namespace Core
	{
		namespace Lua
		{
			//////////////////////////////////////////////////////////////////////////
			class ROCKETLUA_EXPORT LuaDocumentInstancer : public Rocket::Core::ElementInstancer
			{
			public:
				LuaDocumentInstancer( lua_State* );
				virtual ~LuaDocumentInstancer()										{}

				virtual Element*			InstanceElement( Element* parent, const String& tag, const XMLAttributes& attributes ) override;
				virtual void				ReleaseElement( Element* element ) override;
				virtual void				Release() override;

			private:
				lua_State*			mpState;
			};
		}
	}
}
